package com.zyf;

import cn.hutool.core.io.FileUtil;
import com.zyf.service.HandleGJLongVideoByCPUBP;
import com.zyf.service.HandleGJLongVideoByNVIDIABP;
import com.zyf.service.ai.HandleAiBP;
import com.zyf.ui.DrawingWindowService;
import com.zyf.utils.PublicEnums;
import com.zyf.utils.StringUtil;

import java.io.*;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.*;

public class MakeShortvedio {

    public static void main(String[] args) throws Exception {
        DrawingWindowService.createUI(PublicEnums.WindowsType.ServiceWindow.getValue());

//       new HandleAiBP().getPoemByDoubao("C:\\Users\\Administrator\\Desktop\\诗.txt");

        //处理成语文件
//        StringBuffer buffer = new StringBuffer();
//        String path="C:\\Users\\Administrator\\Desktop\\txt\\中华成语故事大全.txt";
//        List<String> result=getSrcTxtByLine(path);
//        List<Integer> deleteIndex=new ArrayList<>();
//        List<Integer> deleteLinked=new ArrayList<>();
//        Map<String,Integer> paramMap=new HashMap<>();
//        for(int i=0;i<result.size();i++){
//            if(paramMap.size()==1&&paramMap.keySet().contains("********")){
//                paramMap.clear();
//            }
//            if(paramMap.size()==2){
//                int one=0;
//                int two=0;
//                int startIndex=0;
//                for(Integer index: paramMap.values()){
//                    if(startIndex==0){
//                        one=index;
//                    }else{
//                        two=index;
//                    }
//                    startIndex++;
//                }
//                if(one<two){
//                    deleteLinked.add(one);
//                    deleteLinked.add(two);
//                }else{
//                    deleteLinked.add(two);
//                    deleteLinked.add(one);
//                }
//                paramMap.clear();
//            }
//            if(result.get(i).contains("用典")){
//                paramMap.put("用典",i);
//            }
//            if(result.get(i).contains("******************")){
//                paramMap.put("********",i);
//            }
//        }
//        for(int i=0;i<deleteLinked.size()-1;i=i+2){
//            int start=deleteLinked.get(i);
//            int end=deleteLinked.get(i+1);
//            for(int j=start;j<=end;j++){
//                deleteIndex.add(j);
//            }
//
//        }
//
//        for(int i=0;i<result.size();i++){
//            if(!deleteIndex.contains(i)||result.get(i).contains("*************")){
//                buffer.append(result.get(i));
//                buffer.append("\n");
//            }
//        }


//
//        StringBuffer buffer = new StringBuffer();
//        String path="C:\\Users\\Administrator\\Desktop\\txt\\中华成语故事大全.txt";
//        List<String> result=getSrcTxtByLine(path);
//        int index=1;
//        for(String content:result){
//            if(content.contains("*************")){
//                buffer.append(content);
//                buffer.append("\n");
//                //写入文件
//                FileWriter writer = null;
//                try {
//                    String finalpath = path.replace("中华成语故事大全",index+"");
//                    writer = new FileWriter(finalpath, false);
//                    writer.write(buffer.toString());
//                } catch (IOException e) {
//                    throw new RuntimeException(e);
//                } finally {
//                    if (writer != null) {
//                        writer.flush();
//                        writer.close();
//                    }
//                }
//                index++;
//                buffer = new StringBuffer();
//            }else{
//                buffer.append(content);
//                buffer.append("\n");
//            }
//        }
//
//
//        String path = "C:\\Users\\Administrator\\Desktop\\poem\\墨云.txt";
//        List<String> titles = getSrcTxtByLineAndCase(path, "《");
//        Set<String> totalTitle = new HashSet<>();
//        for (String str : titles) {
//            totalTitle.add(str);
//        }
//        List<String> total = getSrcTxtByLineAndCase(path, "");
//        StringBuffer buffer = null;
//        StringBuffer  totalbuffer = new StringBuffer();
//        for (String title : totalTitle) {
//            buffer = new StringBuffer();
//            for (String content : total) {
//                if (content.equals(title)) {
//                    if (buffer.toString().contains("《")) {
//                        break;
//                    }
//                    buffer.append(title);
//                    buffer.append("\n");
//                } else {
//                    if (buffer.toString().contains(title)) {
//                        if (content.contains("《") || content.contains("仿照汪国真诗") || content.contains("This")) {
//                            removeLastLine(buffer);
//                            buffer.replace(buffer.length() - 1, buffer.length(), "。");
//                            buffer.append("\n");
//                            buffer.append("**********************************");
//                            buffer.append("\n");
//                            buffer.append("\n");
//                            break;
//                        }
//                        buffer.append(content).append("，");
//                        buffer.append("\n");
//                    }
//                }
//            }
//            totalbuffer.append(buffer);
//        }
//
//            //写入文件
//            FileWriter writer = null;
//            try {
//                String finalpath = path.replace("墨云",   "墨云_final");
//                writer = new FileWriter(finalpath, false);
//                writer.write(totalbuffer.toString());
//            } catch (IOException e) {
//                throw new RuntimeException(e);
//            } finally {
//                if (writer != null) {
//                    writer.flush();
//                    writer.close();
//                }
//            }


    }

    public static void removeLastLine(StringBuffer sb) {
        String content = sb.toString();
        String[] lines = content.split("\n", -1); // 保留所有空元素
        if (lines.length > 0) {
            // 创建新数组，移除最后一行
            String[] newLines = Arrays.copyOf(lines, lines.length - 1);
            String newContent = String.join("\n", newLines);
            sb.setLength(0);
            sb.append(newContent);
        } else {
            sb.setLength(0); // 无内容可处理
        }
    }

    public static List<String> getSrcTxtByLineAndCase(String filepath, String strCase) {
        List<String> result = new ArrayList<>();
        StringBuffer buffer = new StringBuffer();
        InputStream inputstream = null;
        BufferedReader reader = null;
        String temp = "";
        try {
            inputstream = new FileInputStream(new File(filepath));
            reader = new BufferedReader(new InputStreamReader(inputstream));
            while ((temp = reader.readLine()) != null) {
                if (temp.trim().length() > 1) {
                    if (StringUtil.isBlank(strCase)) {
                        result.add(temp.trim());
                    } else {
                        if (temp.trim().contains(strCase) && temp.trim().length() < 12) {
                            result.add(temp.trim());
                        }
                    }
                }
            }
        } catch (Exception e) {
            System.out.println(e.toString());
        } finally {
            if (reader != null) {
                try {
                    reader.close();
                    inputstream.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
        return result;
    }


}
